#ifndef NODOHOJA_H_
#define NODOHOJA_H_

#include "../Entidades/Utils.h"
#include "Nodo.h"
using namespace Entidades;

namespace Arboles {

class NodoHoja: public Nodo {

private:
	unsigned int referenciaNodoSiguiente;

public:

	NodoHoja(unsigned int referenciaNodoSiguiente, unsigned int capacidadMinima, unsigned int capacidadMaxima);

	unsigned int getReferenciaNodoSiguiente() const;
	void setReferenciaNodoSiguiente(unsigned int referenciaNodoSiguiente);
	Utils::ResultadoOperacionArbol actualizarDatoDe(string clave, unsigned int datoViejo, unsigned int datoNuevo);

	virtual Utils::ResultadoOperacionArbol agregar(RegistroArbol* registro);
	virtual Utils::ResultadoOperacionArbol remover(RegistroArbol* registro);

	virtual void hidratarse(char* buffer, unsigned int tamanioDelBuffer);
	virtual char* construirBuffer();
	virtual unsigned int getTamanioDelBuffer();

	virtual ~NodoHoja();

};

}
#endif
